home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / サンプル応用編 / 簡易ペイント / SPAINT.H < prev    next >
Text File  |  1994-03-10  |  3KB  |  92 lines

  1. /******************************************************************************
  2.  *    spaint.h:    spaint.c用ヘッダファイル
  3.  ******************************************************************************
  4.  *    Workroom SX-68K Sample Program Copyright 1994 SHARP
  5.  *
  6.  *    定数定義
  7.  */
  8. /* ウィンドウタイトル */
  9. #define WINTITLE    ((_LASCII) "\x0c簡易ペイント")
  10.  
  11. /* ウィンドウサイズ */
  12. #define WIN_H        600        /* ウィンドウの幅        */
  13. #define WIN_V        300        /* ウィンドウの高さ        */
  14.  
  15. #define MAX_RGN_CNT    100        /* リージョンの最大点数        */
  16.  
  17. /* イベントマスク */
  18. #define EVENTMASK    (EM_IDLE | EM_MSLDOWN | EM_MSLUP | EM_MSRDOWN | EM_UPDATE | EM_ACTIVATE | EM_SYSTEM1 | EM_SYSTEM2)
  19. /*
  20.  *    構造体宣言
  21.  */
  22. typedef struct ComData {
  23.     int id;                /* 図形の種類            */
  24.     struct ComData **next;        /* 次のデータのハンドル        */
  25.     Rect bounds;            /* データを囲むレクタングル    */
  26.     int color;            /* 描画色            */
  27.     Point penSize;            /* 描画ペンサイズ        */
  28.     int drawMode;            /* 枠(0)表示か塗りつぶし(1)表示か */
  29.     union {
  30.         Point radius;        /* ラウンドレクタングルのときのみ有効 */
  31.         struct {
  32.             int cnt;    /* リージョンの点数        */
  33.             Point point[100]; /* リージョンの座標情報    */
  34.             Region **hdl;    /* リージョンハンドル        */
  35.         } rgn;
  36.     } ext;
  37. } ComData;
  38.  
  39. typedef struct ComVal {            /* 共通変数            */
  40.     Window *windowPtr;        /* ウィンドウポインタ        */
  41.     BOOLEAN activeFlag;        /* アクティブフラグ        */
  42.     TsEvent event;            /* イベントレコード        */
  43.     int eventMask;            /* イベントマスク        */
  44.     int errorCode;            /* エラーコード            */
  45.     BOOLEAN endFlag;        /* 終了フラグ            */
  46.     int drawType;            /* 現在の処理メニュー番号    */
  47.     int drawMode;            /* 枠(0)表示か塗りつぶし(1)表示か */
  48.     int paletFC;            /* 現在のフォアグラウンドカラー */
  49.     Point penSize;            /* 現在のペンサイズ        */
  50.     Point downPos;            /* マウスレフトダウン時の入力点    */
  51.     Point upPos;            /* マウスレフトアップ時の入力点    */
  52.     int animFlag;            /* drawGraph処理フラグ        */
  53.     Point radius;            /* ラウンドレクタングルの直径    */
  54.     int rgnCnt;            /* リージョンの座標入力点数    */
  55.     Point rgnPoint[100];        /* リージョンの座標格納場所    */
  56.     long clickTime;            /* 最後に左ボタンが離された時間    */
  57.     BOOLEAN dispRbFlag;        /* ラバーバンド表示フラグ    */
  58.     Rect rbSize;            /* ラバーバンド表示点        */
  59.     ComData **data;            /* データ格納領域へのハンドル    */
  60.     int dataCnt;            /* 格納データの件数        */
  61. } ComVal;
  62. /*
  63.  *    関数プロトタイプ
  64.  */
  65. /* spmain.c */
  66. BOOLEAN init(ComVal *);
  67. BOOLEAN createWindow(ComVal *);
  68. void idleEvent(ComVal *);
  69. void msLDownEvent(ComVal *);
  70. void msLUpEvent(ComVal *);
  71. void msRDownEvent(ComVal *);
  72. void selectMenu(ComVal *);
  73. void keyDownEvent(ComVal *);
  74. void updateEvent(ComVal *);
  75. void drawGraph(ComVal *);
  76. void activateEvent(ComVal *);
  77. void systemEvent(ComVal *);
  78. void showErrDialog(ComVal *);
  79. void endProc(int, ComVal *);
  80. BOOLEAN checkDClick(ComVal *);
  81.  
  82. /* spaint.c */
  83. void setComData(ComVal *, ComData **);
  84. void checkRectPos(Rect *);
  85. void drawGraphRgn(ComVal *);
  86. void makeRgn(ComVal *);
  87. void drawAll(ComVal *);
  88. void drawNext(ComData **);
  89. void drawOne(ComData **);
  90. void dispRubberBand(ComVal *, int);
  91. void drawZukei(int, int, Rect *, LPoint);
  92.